我在这里看到了一个问题的答案,有助于在git中恢复已删除的文件.
解决方案是
git checkout^ --
插入符(^
)的作用是什么?我在其他地方看到它在git中做了非常有用的事情.这很神奇.请有人为我破坏它并告诉我它的作用?
HEAD^
表示当前分支的提示的第一个父级.
请记住,git提交可以有多个父级.HEAD^
是的缩写HEAD^1
,你也可以HEAD^2
适当地解决等问题.
你可以找到任何提交的父母,而不仅仅是HEAD
.您也可以追溯到几代人:例如,master~2
意味着主分支的祖父母,在歧义的情况下支持第一个父母.这些说明符可以被任意连接,例如,topic~3^2
.
有关完整的详细信息,请参阅的"指定修订"部分HEAD^
.
它的意思是"父母".所以HEAD^
意味着"当前HEAD的父母".您甚至可以将它们链接在一起:HEAD^^
意味着"当前HEAD的父级的父级"(即当前HEAD的祖父级),HEAD^^^
意味着" 当前HEAD 的父级的父级的父级",等等.
的^
(尖)也可以被使用时,指定的范围.
要排除从提交可到达的提交,使用前缀^表示法.例如,^ r1 r2表示可以从r2到达的提交,但不包括从r1可到达的提交.
<转>
包括可以从(即祖先)访问的提交.
^ <转>
排除可从(即祖先)到达的提交.
这是一个直观的解释.假设你有这样的历史:
master ... <- B <- C <- D / ... <- E <- F feature
当功能合并到主人时,C
创建了两个祖先.Git分配这些祖先数字.主线祖先B
分配1,功能祖先F
分配2.
因此C^1
指B
和C^2
指F
.C^
是别名C^1
.
你只会用
.如果你已经执行了三个分支的合并.
插入符号指的是特定提交的父节点.Eg HEAD^
指的是当前HEAD委托的父代.(也HEAD^^
指祖父母).